Of various digital devices ranging from office equipment such as a copying machine and facsimile device to a portable terminal and interactive television, Non-PC devices except a so-called personal computer are generally called embedded devices.
Conventionally, an application in such an embedded device is statically linked to compilation and installed in the system when the system is constructed. It is often impossible to dynamically install an application during the operation of the embedded device. However, as many embedded devices are equipped with an Internet connection function, an application is installed into an embedded device from a Web browser in a PC (Personal computer) or WS (Work Station), or an embedded device itself downloads a necessary application from the Internet or a file server in a company and executes the application.
For example, a Java applet or Java application described in a Java language which is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries is dynamically downloaded into an embedded device equipped with a Java virtual machine (to be referred to as a JVM hereinafter) serving as a Java execution environment, and executed in the embedded device.
In conventional installation of an application into a device, whether an application to be installed copes with the OS (Operating System) of an embedded device is checked, and if the application is not proper, installation of the application can be inhibited, as disclosed in “Japanese Patent Laid-Open No. 11-175322”. As disclosed in “Japanese Patent Laid-Open No. 11-134178”, version information in a module is checked in installation, and installation of an unnecessary application can be inhibited.
A method of checking installation is also specified for installation of a Java applet and Java application. For example, in Java 2 Platform, Micro Edition (J2ME) which is also a registered trademark of Sun Microsystems, Inc., a profile “Mobile Information Device Profile (JSR-37) Specification (MIDP)” targeting mobile devices is developed by Java Community Process (JCP) Expert Group. In this specification, information on a Java application to be installed is described as MIDlet Attributes. At this time, the Java application version, profile version, JVM version, module size, and the like are described. These contents are compared with the Java execution environment of a device in installation, preventing installation of an unnecessary application.
In the prior art, even if the OS or version is proper, the operation of an installed application is not always guaranteed depending on a device support situation such as a hardware resource including a memory capacity or storage device capacity, or a network connection function. This problem is serious particularly in an embedded device. This is because the hardware resource is minimized for low cost, and another application may fail due to a shortage of the memory capacity or storage device capacity. If tasks exceed the limit value of tasks usable in the system, the original function of the embedded device may fail, and in the worst case the system may fail. Installation of an application which does not run wastefully consumes the resource of an external storage device.
The same problem also occurs when a Java application or Java applet is installed into an embedded device having a Java execution environment. Information of the above-mentioned MIDlet Attributes does not describe information on how many threads the Java application requires, which storage device such as a hard disk or flash memory is used, how much of the memory capacity is necessary, or which protocol is necessary for network connection. For this reason, whether a Java application or Java applet normally operates cannot be known until it is actually installed and executed. The profile of MIDlet Attributes does not describe the type of Java class library necessary for a Java application. Even if a Java application requires a Java class library created by the user or a Java class library unique to the device, whether the Java application normally operates cannot be known until it is actually installed and executed.